package com.example.Arithmetic.Lettcode;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

/**
 * 日期：2023/12/26
 * 时间：11:55
 * 描述：力扣819题
 * 最常见的单词
 * lambada表达式实现，切割后添加进map中
 */
public class E01Lettcode819_1 {
    public String mostCommonWord(String paragraph, String[] banned) {
        String[] split = paragraph.toLowerCase().split("[^A-Za-z]+");
        Set<String> strings = Set.of(banned);
        HashMap<String, Integer> hashMap = new HashMap();
        for (String s : split) {
//            Integer o = (Integer) hashMap.get(s);
//            if (o==null){
//                o=0;
//            }
//            hashMap.put(s,o+1);
            if (!strings.contains(s)){
                hashMap.compute(s, (k, v) -> v == null ? 1 : v + 1);
            }
        }
        Optional<Map.Entry<String, Integer>> max = hashMap.entrySet().stream().max(Map.Entry.comparingByValue());
        return max.map(Map.Entry::getKey).orElse(null);
    }
}

